const TOKEN_KEY = 'edu_token'
const USER_INFO_KEY = 'edu_user_info'

/**
 * 获取Token
 */
export function getToken() {
  return uni.getStorageSync(TOKEN_KEY)
}

/**
 * 设置Token
 */
export function setToken(token) {
  return uni.setStorageSync(TOKEN_KEY, token)
}

/**
 * 移除Token
 */
export function removeToken() {
  return uni.removeStorageSync(TOKEN_KEY)
}

/**
 * 检查是否已登录
 */
export function checkLogin() {
  const token = getToken()
  return !!token
}

/**
 * 获取用户信息
 */
export function getUserInfo() {
  const userInfo = uni.getStorageSync(USER_INFO_KEY)
  return userInfo ? JSON.parse(userInfo) : null
}

/**
 * 设置用户信息
 */
export function setUserInfo(userInfo) {
  return uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo))
}

/**
 * 移除用户信息
 */
export function removeUserInfo() {
  return uni.removeStorageSync(USER_INFO_KEY)
}

/**
 * 登出
 */
export function logout() {
  removeToken()
  removeUserInfo()
  
  // 跳转到登录页
  uni.reLaunch({
    url: '/pages/auth/login'
  })
}

/**
 * 检查用户角色
 */
export function hasRole(role) {
  const userInfo = getUserInfo()
  if (!userInfo || !userInfo.roles) {
    return false
  }
  
  return userInfo.roles.includes(role)
}

/**
 * 是否为教员
 */
export function isTeacher() {
  return hasRole('TEACHER')
}

/**
 * 是否为家长
 */
export function isParent() {
  return hasRole('PARENT')
}

/**
 * 是否为管理员
 */
export function isAdmin() {
  return hasRole('ADMIN')
}

/**
 * 登录拦截
 */
export function loginIntercept() {
  if (!checkLogin()) {
    uni.showModal({
      title: '提示',
      content: '请先登录',
      showCancel: false,
      success: () => {
        uni.navigateTo({
          url: '/pages/auth/login'
        })
      }
    })
    return false
  }
  return true
} 